home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / contrib / scripts / chair.irt < prev    next >
Encoding:
Text File  |  1996-07-16  |  3.7 KB  |  97 lines

  1. #Authors: Oded Sudarski and Ramon Chemel
  2.  
  3. seat_mesh = LIST(LIST(    CTLPT(E3, -0.1925,  0.0150,  0.0275),
  4.             CTLPT(E3, -0.1800,  0.0000,  0.0300),
  5.             CTLPT(E3, -0.1600, -0.0300,  0.0000),
  6.             CTLPT(E3,  0.1600, -0.0300,  0.0000),
  7.             CTLPT(E3,  0.1800,  0.0000,  0.0300),
  8.             CTLPT(E3,  0.1925,  0.0150,  0.0275)),
  9.         LIST(    CTLPT(E3, -0.2050,  0.0300,  0.0550),
  10.             CTLPT(E3, -0.2000,  0.0300,  0.0600),
  11.             CTLPT(E3, -0.1500,  0.0000,  0.0300),
  12.             CTLPT(E3,  0.1500,  0.0000,  0.0300),
  13.             CTLPT(E3,  0.2000,  0.0300,  0.0600),
  14.             CTLPT(E3,  0.2050,  0.0300,  0.0550)),
  15.         LIST(    CTLPT(E3, -0.2050,  0.3700,  0.0950),
  16.             CTLPT(E3, -0.2000,  0.3700,  0.1000),
  17.             CTLPT(E3, -0.1400,  0.3700,  0.0200),
  18.             CTLPT(E3,  0.1400,  0.3700,  0.0200),
  19.             CTLPT(E3,  0.2000,  0.3700,  0.1000),
  20.             CTLPT(E3,  0.2050,  0.3700,  0.0950)),
  21.         LIST(    CTLPT(E3, -0.2050,  0.3850,  0.1100),
  22.             CTLPT(E3, -0.2000,  0.3800,  0.1100),
  23.             CTLPT(E3, -0.1400,  0.4500,  0.1100),
  24.             CTLPT(E3,  0.1400,  0.4500,  0.1100),
  25.             CTLPT(E3,  0.2000,  0.3800,  0.1100),
  26.             CTLPT(E3,  0.2050,  0.3850,  0.1100)),
  27.         LIST(    CTLPT(E3, -0.1950,  0.4750,  0.4000),
  28.             CTLPT(E3, -0.1900,  0.4700,  0.4000),
  29.             CTLPT(E3, -0.1400,  0.4800,  0.4500),
  30.             CTLPT(E3,  0.1400,  0.4800,  0.4500),
  31.             CTLPT(E3,  0.1900,  0.4700,  0.4000),
  32.             CTLPT(E3,  0.1950,  0.4750,  0.4000)),
  33.         LIST(    CTLPT(E3, -0.1825,  0.4825,  0.4125),
  34.             CTLPT(E3, -0.1700,  0.4900,  0.4250),
  35.             CTLPT(E3, -0.1500,  0.5100,  0.4500),
  36.             CTLPT(E3,  0.1500,  0.5100,  0.4500),
  37.             CTLPT(E3,  0.1700,  0.4900,  0.4250),
  38.             CTLPT(E3,  0.1825,  0.4825,  0.4125)));
  39.  
  40. front_surface = SBSPLINE(3, 3, seat_mesh, LIST(LIST(KV_OPEN), LIST(KV_OPEN)));
  41. back_surface = OFFSET(front_surface, 0.003, 1.0, off);
  42. side1 = RULEDSRF(CSURFACE(back_surface, ROW, 0),
  43.         CSURFACE(front_surface, ROW, 0));
  44. side2 = RULEDSRF(CSURFACE(back_surface, COL, 0),
  45.         CSURFACE(front_surface, COL, 0));
  46. side3 = RULEDSRF(CSURFACE(back_surface, ROW, 4),
  47.         CSURFACE(front_surface, ROW, 4));
  48. side4 = RULEDSRF(CSURFACE(back_surface, COL, 4),
  49.         CSURFACE(front_surface, COL, 4));
  50.  
  51. ellipse = TRANS(VECTOR(0.0, 0.0, 0.06)) *
  52.     CBEZIER(LIST(    CTLPT(E3,  0.00,  0.00,  0.02),
  53.             CTLPT(E3,  0.13,  0.00,  0.02),
  54.             CTLPT(E3,  0.13,  0.00,  0.00),
  55.             CTLPT(E3,  0.13,  0.00, -0.02),
  56.             CTLPT(E3,  0.00,  0.00, -0.02),
  57.             CTLPT(E3, -0.13,  0.00, -0.02),
  58.             CTLPT(E3, -0.13,  0.00,  0.00),
  59.             CTLPT(E3, -0.13,  0.00,  0.02),
  60.             CTLPT(E3,  0.00,  0.00,  0.02)));
  61.  
  62. oval_cylinder = EXTRUDE(ellipse, VECTOR(0.0, 0.6, 0.0));
  63. front_surface = convex(front_surface / oval_cylinder);
  64. back_surface = convex(back_surface / oval_cylinder);
  65. seat = LIST(back_surface, front_surface, side1, side2, side3, side4);
  66. COLOR(seat, YELLOW);
  67.  
  68. legs_list = LIST(CTLPT(E3, -0.220, 0.000, -0.400),
  69.         CTLPT(E3, -0.220, 0.034, -0.065),
  70.         CTLPT(E3, -0.220, 0.046,  0.045),
  71.         CTLPT(E3, -0.220, 0.188,  0.045),
  72.         CTLPT(E3, -0.220, 0.330,  0.045),
  73.         CTLPT(E3, -0.220, 0.360, -0.065),
  74.         CTLPT(E3, -0.220, 0.450, -0.400));
  75. legs_curve = CBSPLINE(3, legs_list, LIST(KV_OPEN));
  76. square = CBSPLINE(2,
  77.         LIST(    CTLPT(E3, -0.01, -0.01,  0.00),
  78.             CTLPT(E3,  0.01, -0.01,  0.00),
  79.             CTLPT(E3,  0.01,  0.01,  0.00),
  80.             CTLPT(E3, -0.01,  0.01,  0.00),
  81.             CTLPT(E3, -0.01, -0.01,  0.00)),
  82.         LIST(KV_OPEN));
  83. right_legs = SWEEPSRF(square, legs_curve, OFF);
  84. right_to_left = TRANS(VECTOR(0.44, 0.00, 0.00));
  85. left_legs = right_to_left * right_legs;
  86. front_right = CEVAL(legs_curve, 1.15);
  87. front_left = right_to_left * front_right;
  88. back_right = CEVAL(legs_curve, 3.75);
  89. back_left = right_to_left * back_right;
  90. front_crossbar = SWEEPSRF(square, CBEZIER(LIST(front_right, front_left)), OFF);
  91. back_crossbar = SWEEPSRF(square, CBEZIER(LIST(back_right, back_left)), OFF);
  92. legs = LIST(right_legs, left_legs, front_crossbar, back_crossbar);
  93. COLOR(legs, WHITE);
  94.  
  95. chair = LIST(legs, seat);
  96. VIEW(chair, TRUE);
  97.